package com.cn.zpark;

import com.cn.zpark.utils.DBUtils;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Scanner;

/**
 * @PackageName: com.cn.zpark
 * @ClassName: JdbcPreparedStatLogin
 * @Description:
 * @author: RZS
 * @date: 2022/3/31  11:20
 */
public class JdbcPreparedStatLogin {
    public static void main(String[] args) throws Exception {
        /*
            登录流程：
                1、提示用户输入用户名和密码
                2、用户提交用户名和密码
                3、后台接收用户名和密码
                4、后台拿着用户名和密码前往数据库查询
                5、如果查询有结果，则提示登录成功，否则，登录失败
         */
        // 1、提示用户输入用户名和密码
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入您的用户名：");
        // 3、后台接收用户名和密码
        String username = scan.nextLine();
        System.out.println("请输入您的密码：");
        // 3、后台接收用户名和密码
        String password = scan.nextLine();

        // 4、后台拿着用户名和密码前往数据库查询
        Connection conn = null;
        PreparedStatement stat = null;
        ResultSet res = null;

        // 获取数据库连接对象
        conn = DBUtils.getConn();
        // 创建sql语句
        String sql = "select id,uname,pwd from tab1 where uname=? and pwd=?";
        System.out.println(sql);
        // 创建prepareStatement对象
        stat = conn.prepareStatement(sql);
        // 替换占位符
        stat.setString(1, username);
        stat.setString(2, password);

        // 执行sql，并且获取结果集
        res = stat.executeQuery();
        // 判断结果是否有数据
        if(res.next()){
            System.out.println("登录成功");
        }else{
            System.out.println("用户名或者密码错误");
        }
        // 关闭资源
        DBUtils.close(conn, stat, res);
    }
}
